#include "Menu.h"
#include <math.h>

Menu::Menu(){

}


Menu::Menu(SDL_Surface* v){
	this->ventana = v;
	opcionActual = 0;
	this->sonido = new Sonido();
}

void Menu::OnKeyUp(SDLKey sym, SDLMod mod, Uint16 unicode) {
	dibujarOpciones();
}

void Menu::OnKeyDown(SDLKey sym, SDLMod mod, Uint16 unicode) {
	switch(sym){
		case SDLK_DOWN:
			opcionActual += (opcionActual!=3)?1:0;
			break;
		case SDLK_UP:
			opcionActual -= (opcionActual!=0)?1:0;
			break;
		case SDLK_RETURN:
			Running = false;
			break;
	}
}

int Menu::Partida(){
	return(0);
}



bool Menu::OnInit() {
    if(SDL_Init(SDL_INIT_EVERYTHING) < 0) {
        return false;
    }
	dibujarOpciones();

    return true;
}


void Menu::dibujarOpciones(){
	TTF_Init();
	SDL_Color colorNormal;
	colorNormal.r=255;
	colorNormal.g=255;
	colorNormal.b=255;
	SDL_Color colorActual;
	colorActual.r=127;
	colorActual.g=127;
	colorActual.b=255;
	
	TTF_Font* font = TTF_OpenFont("font.ttf",24);
	SDL_Color c;

	c=(opcionActual==0)?colorActual:colorNormal;
	SDL_Surface* ttf = TTF_RenderText_Solid(font,"JUGAR",c);
	SDL_Rect pos;

	//se carga la imagen de fondo
	pos.x = 0;
	pos.y = 0;
	SDL_Surface *imagenFondo = SDL_LoadBMP("MenuPpalFondo1024x768.bmp");
	SDL_BlitSurface(imagenFondo,NULL,ventana,&pos);
	//Fin se carga la imagen de fondo
	
	pos.x=450;
	pos.y=450;
	SDL_BlitSurface(ttf,NULL,ventana,&pos);

	c=(opcionActual==1)?colorActual:colorNormal;
	SDL_FreeSurface(ttf);
	ttf = TTF_RenderText_Solid(font,"CREAR USUARIO",c);
	pos.y=480;
	SDL_BlitSurface(ttf,NULL,ventana,&pos);


	c=(opcionActual==2)?colorActual:colorNormal;
	SDL_FreeSurface(ttf);
	ttf = TTF_RenderText_Solid(font,"VER ESTADISTICAS",c);
	pos.y=510;
	SDL_BlitSurface(ttf,NULL,ventana,&pos);
	c=(opcionActual==3)?colorActual:colorNormal;
	SDL_FreeSurface(ttf);
	ttf = TTF_RenderText_Solid(font,"SALIR",c);
	pos.y=540;
	SDL_BlitSurface(ttf,NULL,ventana,&pos);

	SDL_Flip(ventana);
	SDL_FreeSurface(ttf);
	SDL_FreeSurface(imagenFondo);
	TTF_Quit();
}

void Menu::OnRender() {
}

void Menu::OnCleanup() {
    SDL_Quit();
}

int Menu::OnExecute() {
    if(OnInit() == false) {
        return -1;
    }

	// se carga el sonido del menu
	if(sonido != NULL){
		sonido->ejecutar("Pacman_MENU_WAV_00.29.wav", 10, -1, 0);
	}
	else {
		cout << "ERROR" <<endl;
	}
	// Fin se carga el sonido del menu

    SDL_Event Event;
	
    while(Running) {
        while(SDL_PollEvent(&Event)) {
            OnEvent(&Event);
        }
    }
	
	sonido->close();

    //OnCleanup();
    return 0;
}

int Menu::OpcionElegida(){
	return(opcionActual);
}